package woa.array;

/**
 * 反转字符串中的元音字母
 * 给你一个字符串 s ，仅反转字符串中的所有元音字母，并返回结果字符串。
 * 元音字母包括 'a'、'e'、'i'、'o'、'u'，且可能以大小写两种形式出现。
 *
 * 输入：s = "hello"
 * 输出："holle"
 *
 * @author wangpeng
 * @date 2021/11/14
 */
public class ReverseVowelsProblem {

    public static String reverseVowels(String s) {
        char[] chars = s.toCharArray();
        int i = 0, j = chars.length - 1;
        while (i < j) {
            if (!isVowel(chars[i])) {
                i++;
                continue;
            }
            if (!isVowel(chars[j])) {
                j--;
                continue;
            }
            char temp = chars[i];
            chars[i] = chars[j];
            chars[j] = temp;
            i++;
            j--;
        }
        return new String(chars);
    }

    /**
     * 是否元音字母
     *
     * @param c
     * @return
     */
    public static boolean isVowel(char c) {
        if (c == 97 || c == 101 || c == 105 || c == 111 || c == 117
                || c == 65 || c == 69 || c == 73 || c == 79 || c == 85) {
            return true;
        }
        return false;
    }

    public static void main(String[] args) {
        System.out.println(reverseVowels("leetcode"));
    }
}
